package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.AccounLoginInfo;
import com.zb.entity.RemarkVo;
import com.zb.entity.ZjNetworkAloneTeamChange;
import com.zb.vo.NetworkAloneTeamChangeCheckVo;
import com.zb.vo.NetworkAloneTeamChangeDetailVo;
import com.zb.vo.NetworkAloneTeamChangeVo;

/**
 * <p>
 * 网点个人团队变更申请表 服务类
 * </p>
 *
 * @author WEN
 * @since 2024-02-02
 */
public interface ZjNetworkAloneTeamChangeService extends IService<ZjNetworkAloneTeamChange> {

    /**
     * 申请成为团队服务商
     * @param loginInfo
     * @param aloneTeamChangeVo
     */
    void applyChangeToNetworkTeam(AccounLoginInfo loginInfo, NetworkAloneTeamChangeVo aloneTeamChangeVo);

    /**
     * 申请成为个人服务商
     * @param loginInfo
     * @param aloneTeamChangeVo
     */
    void applyChangeToNetworkAlone(AccounLoginInfo loginInfo, NetworkAloneTeamChangeVo aloneTeamChangeVo);

    /**
     * 根据服务商ID获取服务商个人或团队变更申请
     * @param networkId 服务商ID
     * @return
     */
    NetworkAloneTeamChangeDetailVo getNetworkWaitCheckAloneTeamChangeApply(Long networkId);

    /**
     * 审核服务商个人或团队变更申请
     * @param loginInfo
     * @param changeCheckVo 审核对象
     */
    void checkNetworkWaitCheckAloneTeamChangeApply(AccounLoginInfo loginInfo, NetworkAloneTeamChangeCheckVo changeCheckVo);

    /**
     * 取消变更个人服务商/服务商团队申请
     * @param loginInfo
     * @param id 变更记录ID
     * @param remarkVo 取消备注
     */
    void cancelChangeToNetworkApply(AccounLoginInfo loginInfo, Long id, RemarkVo remarkVo);
}
